/*
    主要负责逻辑地址到物理地址的映射
 */
public class MMU {
    private int[] pageTable;
    private boolean[] validBit;
    private TLB tlb;
    private static MMU mmu;
    public int getPhysical(int pageNumber, int pageOffset) {
        if(tlb.getLruCache().contains(pageNumber)){
            return (int)tlb.getLruCache().get(pageNumber)+pageOffset;
        }
        if (validBit[pageNumber]) {
            tlb.addNew(pageNumber,pageOffset);
            return pageTable[pageNumber] + pageOffset;
        } else {
            //缺页，中期调度swap
            //如果有空闲帧则调入

            //如果没有空闲帧则置换
            return -1;
        }
    }
    public static MMU getMmu(){
        return mmu;
    }
    private void swap(){

    }
    public void pager(){

    }
}
